package com.bitoon.basketdudes.web;

import com.bitoon.basketdudes.web.jpa.*;
import org.apache.log4j.Logger;
import javax.persistence.*;

public class DetallePartido extends BaseListadoResultados {

    private String idPartido;
    private Partido partido;
    private Partida partida;

    private Logger log = Logger.getLogger(DetallePartido.class);

    @Override
    public String execute() {
        String retorno = SUCCESS;

        EntityManager em = null;
        Partido partidoAux = null;

        try {
            log.debug("buscando partido execute: "+idPartido);
            if(idPartido!=null && idPartido.compareTo("")!=0)
            {
                int idPartidoNum = Integer.parseInt(idPartido);
                em = emfBasket.createEntityManager(); // checked

                
                partidoAux = em.find(Partido.class, idPartidoNum);
                log.debug("partido: " + partidoAux);
            }
            if (partidoAux == null) {
                retorno = NOT_FOUND;
            } else {
                setPartido(partidoAux);
            }
        } catch (Exception e) {
            log.error("Error", e);
        } finally {
            try { em.close(); } catch (Exception e) { }
        }

        return retorno;
    }

    public String buscarPartido()
    {
        String retorno = SUCCESS;
        EntityManager em = null;
        Partido partidoAux = null;

        try {
            if(idPartido!=null && idPartido.compareTo("")!=0)
            {
                log.debug("buscando partido en metodo: "+idPartido+" longitug"+idPartido.length());
           
                int idPartidoNum = Integer.parseInt(idPartido);
                em = emfBasket.createEntityManager(); // checked
                partidoAux = em.find(Partido.class, idPartidoNum);
                log.debug("partido: " + partidoAux);
            }
            if (partidoAux != null) {
                setPartido(partidoAux);

                //saco la partida asociada si la hubiera
                Query q = em.createNamedQuery("Partida.findById");
                q.setParameter("id", Integer.parseInt(idPartido));
                //si existe la partida aun en la BD
                if(q.getSingleResult()!=null){
                    partida = (Partida)q.getSingleResult();
                    log.debug("partida: " + partida);
                }
            }
        } catch (Exception e) {
            log.error("Error", e);
        } finally {
            try { em.close(); } catch (Exception e) { }
        }

        return retorno;
    }

    public String getIdPartido() {
        return idPartido;
    }

    public void setIdPartido(String idPartido) {
        this.idPartido = idPartido;
    }

    public Partido getPartido() {
        return partido;
    }

    public void setPartido(Partido partido) {
        this.partido = partido;
    }

    public Partida getPartida() {
        return partida;
    }

    public void setPartida(Partida partida) {
        this.partida = partida;
    }


}
